GNUH8 v0503 October 12th, 2005 KPIT Cummins Infosystems Limited is now releasing GNUH8 v0503, a cross compiler toolchain for Renesas (formerly Hitachi) H8 series of microcontrollers. SALIENT FEATURES: 1. GNUH8 v0503 is based on gcc-4.0.1, binutils-2.16.1 and newlib-1.12.0. 2. The latest patches have been applied to the gcc, binutils and newlib. 3. Linker relaxation is enhanced for instructions with register indirect with 32 bit displacement address form, but refer to the top page of memory, and changes them to use register indirect with 16 bit displacement address form. This enhancement is for ELF only. 4. In HEW, user can now select specific target. IO-header file, vectors table and linker section for the selected target (CPU) gets included in default project. 5. Support for HEW4 Please refer to the FAQ for details of the patches applied to the sources. http://www.kpitgnutools.com/phpmyfaq/index.php?sid=16957&aktion=artikel& rubrik=001005&id=42&lang=en ABOUT GNUH8 v0503: Release version: GNUH8 v0503 Release Date: October 12th, 2005 Platforms Supported: Red Hat GNU/Linux v8.0 or later (or compatible distribution) Windows 9X/NT/2000/XP/ME Languages: C, C++ H8 Series: H8/300, H8/300L H8/300H, H8/300H Tiny Series, H8/S 2XXX, H8/S 26XX, H8/SX (ELF) Object File Formats: ELF, COFF Please register at http://www.kpitgnutools.com for free technical support. Please contact http://www.kpitgnutools.com/feedback.php for any feedback or suggestions. CHANGES IN THIS RELEASE: This section summarizes the major changes as compared to GNUH8 v0502. Binutils: 1. H8 assembler now display error message for invalid syntax for immediate data transfer (e.g. mov.w #H'00, r0). 2. The h8300-coff-ld command used to generate incorrect S-Record (*.mot) file with '--oformat=srec' option incase of H8 COFF. This has been fixed. HEW (For Windows OS only): 1. GNU makefile generation is implemented for HEW4. The project builds successfully and S-Rec file is generated, if "build using makefile" option is selected. 2. Viewing of global variables for all H8 targets was not possible for "C" and "Cpp" applications when built using g++ for v0502 tool chain. This has been fixed. 3. Address information for assembly files used to be wrong or missing. This has been fixed. 4. If "generate list files" option is selected in "Options->Compiler->List" and no other option is selected from "Additional list file options", then while building the project compiler used to give error. This has been fixed. 5. Command line limit for XP is 8K. An error message is displayed if this limit is exceeded. Known problems: We intend to fix the known problems in our future releases. We also release Maintenance Packs for critical bugs fixed in between releases. H8-COFF and H8-ELF: Windows: 1. Windows 9X has restriction on the length of command line that can be given. Due to this, 1. When the tool chain shortcut from 'Start' menu is invoked, the relevant batch file may not be found and Windows 9X may display an error. 2. In HEW (High-performance Embedded Workshop), this restriction may cause problems during linking. Please refer to the following link for further details on this. http://www.kpitgnutools.com/phpmyfaq/index.php?sid=2884&aktion=artikel& rubrik=001006&id=151&lang=en Windows and GNU/Linux: 1. Assembler error while building the following code with optimization enabled, unsigned long x[4]; void foo(void) { ((void (*)())(x+2))(); } 2. Following code produces Internal Compiler Error, void set_bit(int nr, char * addr) { __asm__("bset %w1,%0":"=m"(*addr) :"g"(nr),"m"(*addr)); } 3. Following code if compiled for H8300H, H8300HN, H8S, H8300SN, H8SX, H8SXN targets with optimization option -O2 and above, generates wrong assembly code, unsigned int ReadWordx86Style(unsigned long lAddr) { unsigned char baBuff[2]; baBuff[0x00]=*((unsigned char *)((unsigned int)(lAddr+1))); baBuff[0x01]=*((unsigned char *)((unsigned int)(lAddr+0))); return((*(unsigned int *)baBuff)); } int start(void) { unsigned char baBuff[256]; unsigned int wResult; wResult = ReadWordx86Style((unsigned long)((unsigned int)baBuff)); return(wResult); } 4. The assembler option "-al=" which is used to generate list file gives the following error, "option `-alternate' doesn't allow an argument". H8-ELF: Windows and GNU/Linux: 1. h8300-elf-as does not give error if attribute of a section is not specified. H8-COFF: Windows and GNU/Linux: 1. The following code gives error 'Too many new sections; can't add ".bss.w35"' when "-fno-common" and "-fdata-sections" options passed together. unsigned int w00, w01, w02, w03, w04, w05, w06, w07, w08, w09, w10, w11, w12, w13, w14, w15, w16, w17, w18, w19, w20, w21, w22, w23, w24, w25, w26, w27, w28, w29, w30, w31, w32, w33, w34, w35, w36, w37, w38, w39; int main(void){ } NOTE: Windows and GNU/Linux: 1. The int32 libraries for H8/300 are not provided with this release. 2. Latest GDB v0502 must be used with v0503 tool chain.